/**
 * Copyright 2013-2015. blackdog1987@gmail.com . All rights reserved. 
 */
package com.goodsogood.union.auth.dao.hibernate.jdbc;

import java.util.List;
import java.util.Map;

import org.springframework.jdbc.core.BeanPropertyRowMapper;

/**
 * @author DongGuoChao
 * @date 2013-12-26
 */
public class JdbcUtil {
	
	/**
	 * 返回一个查询列表, 列表中的对象类型为clazzTo参数指定的类型对象。 改方法适用于查询SQL中使用?作为参数占位符的SQL语句
	 * 
	 * @param querySql
	 * @param clazzTo
	 * @param dao
	 * @return
	 */
	public static <T> List<T> queryForList(BaseJdbcDao dao, final Class<T> clazzTo, String querySql, Object... params) {
		return dao.getJdbcTemplate().query(querySql, BeanPropertyRowMapper.newInstance(clazzTo),
				params);
	}
	
	public static <T> List<T> pageQueryInternal(BaseJdbcDao dao, PageResultSetExtractor<T> pageResultSetExtractor, String sql, Map<String, Object> params) {
		return dao.getNamedParameterJdbcTemplate().query(sql, params, pageResultSetExtractor);
	}

}
